Skip to main content

Rule Examples

To match a variable where the following text node doesn't start with a space: xpath:.//MadCap:variable[following-sibling::text()[not(starts-with(.,' '))]]

To match a variable wher the preceding text node doesn't end with a space: xpath:.//MadCap:variable[preceding-sibling::text()[not(matches(.,'.*\s+$'))]]

To match a variable with a missing space at either end: xpath:.//MadCap:variable[preceding-sibling::text()[not(matches(.,'.*\s+$'))] or following-sibling::text()[not(starts-with(.,' '))]]

To find an <a> element that's not covered by a condition the contains the text Online: xpath:.//a[not(ancestor-or-self::*[contains(@MadCap:conditions,"Online")])]

To find elements where there is one or more digits that are not followed by a unit:

\d+(#|#\/cm³|#\/h|#\/km|#\/kWh|#\/l|#\/m|#\/mi|#\/min|#\/mm³|#\/|#\/s|#\/test|#\/Ws|%|%\/s|%mass|%s⁻¹|%vol|'|\(rev\/min\)\/\(km\/h\)|1\/\(ft\/min\)|1\/\(km\/h\)|1\/\(m\/s\)|1\/\(mm\/s\)|1\/cm³|1\/K|1\/kmph|1\/kn|1\/m|1\/min|1\/min\/s|1\/mph|1\/|1\/s|1\/|1\/°C|\"|A|Ah|As|at|atm|bar|bar\/s|bar\/°|bit|Btu|btu\/lb|Btu\/s|byte|cc|cc\/cycle|cc\/s|cd|cfm|cfs|ch|cm|cm\/s|cm²|cm³|cm³\/min|cm³\/s|cm³\/stroke|Coulomb|Count\/h|Count\/kWh|Count\/min|Count\/s|Count\/test|Count\/Ws|d|dB\(A\)|dm|dm²|dm³|dm³\/s|F|Fraction|FSN|ft|ft*lbf|ft*lbf\/s|ft*pdl|ft\/min|ft\/|ft²|ft³|ft³\/min|ft³\/s|g|g\/bhph|g\/cm³|g\/h|g\/inj|g\/kg|g\/km|g\/kWh|g\/l|g\/mi|g\/min|g\/MJ|g\/mol|g\/|g\/s|g\/stroke|g\/Ws|gal\(UK\)|gal\(US\)|gal\(US\)\/h|gal\(US\)\/min|Gbit|GHz|Gibit|gon|gph\(US\)|gpm\(US\)|grav|H|h|hp|hPa|hph|Hz|in|in*lbf|in*ozf|in\/s|inH2O|inHg|in²|in³|J|J\/cm³|J\/K|J\/kg|J\/kgK|J\/m|J\/molK|J\/|J\/s|Js²|K|kA|kbit|kcal|kcal\/s|kg|kg\/\(ms²\)|kg\/cm²|kg\/dm³|kg\/h|kg\/inj|kg\/J|kg\/kg|kg\/kmol|kg\/kWh|kg\/l|kg\/m|kg\/min|kg\/mol|kg\/|kg\/s|kg\/stroke|kg\/Ws|kgf|kgf\/cm²|kgfm|kgfms²|kgm\/|kgm²|kgm²\/|kHz|Kibit|kJ|kJ\/K|kJ\/kg|kJ\/kgK|kJ\/kmolK|km|km\/h|km\/h\/s|km\/l|km\/m|kmol|kmol\/kg|kmol\/kWh|kmol\/s|kmph|km²|km³|kn|kN|kN\/\(m\/s\)|kN\/s|kNm|kNm\/s|kOhm|kp|kp*m\/s|kp\/cm²|kPa|kPa\/s|kpm|krev\/min|kV|kV\/V|kW|kW\/|kWh|kWh\/K|kWh\/l|l|l\/100 km|l\/h|l\/min|l\/s|l\/s\/kPa|l\/s\/mmAq|l\/s\/Pa|l\/tonkm|lb|lb-ft|lb-ft\/rpm|lb-ft\/s|lb-ft\/°|lb\/h|lb\/min|lbf|lbf\/ft²|lbf\/ft²s|lbf\/ft²ss|lbf\/in²|lbf\/in²\/°|lbf\/mph|lbf\/mph²|lbf\/mph³|lbf\/mph⁴|lbs\/ft³|m|m\/h\/rpm|m\/m|m\/|m\/s|m\/s\/rad|m\/|mA|MassFract|mbar|Mbit|mF|mg|mg\/inj|mg\/kg|mg\/km|mg\/mi|mg\/|mg\/stroke|mH|MHz|mi|mi\/gal UK|mi\/gal US|Mibit|min|mi²|mi³|MJ\/kg|mkgf|mm|mm\/m|mm\/s|mmH2O|mmHg|mmol|mmol\/s|mmWS|mm²|mm²\/s|mm³|mm³\/p|mm³\/rev|mm³\/stroke|MN|mOhm|mol|mol\/kg|mol\/kmol|mol\/kWh|mol\/mol|mol\/s|mol\/Ws|MolarFraction|MPa|mPa|MPa\/s|mph|mph\/s|ms|mV|mV\/V|MW|mW|mWb||\/s||\/cycle|\/h|\/inj|\/m|\/min|\/mkg|\/mmH2O|\/ms|\/rad|\/s|\/s\/Pa|\/stroke|N|N\/\(km\/h\)|N\/\(km\/h\)²|N\/\(km\/h\)³|N\/\(km\/h\)|N\/\(m\/s\)|N\/\(m\/s\)²|N\/\(m\/s\)³|N\/\(m\/s\)|N\/\(rad\/s\)²|N\/cm²|N\/m|N\/|N\/s|nF|Nm|Nm\/\(km\/h\)|Nm\/\(km\/h\)²|Nm\/\(km\/h\)³|Nm\/\(m\/s\)|Nm\/\(m\/s\)²|Nm\/\(m\/s\)³|Nm\/\(rad\/s\)|Nm\/\(rad\/s\)²|Nm\/rad|Nm\/rpm|Nm\/rpm²|Nm\/s|Nms|Number\/h|Number\/kWh|Number\/min|Number\/s|Number\/Ws|nWb|Ohm|oz|p|Pa|Pa\/rad|Pa\/s|particles|particles\/h|particles\/kWh|particles\/min|particles\/s|particles\/test|particles\/Ws|pF|poncelet|ppm|ppmC|ppmP|PS|PSh|psi\/°|rad|rad\/m|rad\/Nm|rad\/s|rad\/|ratio|rev\/min|rev\/min\/mph|RoC&|RoC\/|RoC=|rpm|rpm\/s|s|sm|sm²|sm³|sr|s⁻¹|t|Tbit|TestPressureUnit|Tibit|ton\(UK\)|ton\(US\)|Torr|V|V\/V|VA|VolFract|VolumeFraction|W|W\/cm²|W\/|Wb|Wh|Wh\/km|Ws|Ws\/K|yd|yd²|yd³|°|°\/Nm|°C|°F|µA|µF|µg|µH|µm|µm\/m|µmol|µmol\/s|µm²|µm³|µOhm|µs|µV\/V|µWb|ΔK|Δ°C|Δ°F)

Find non-breaking spaces: td:iregex('^\x20+$')

To check if something is covered by a condition - you can use: xpath:.//a[not(ancestor-or-self::*[contains(@MadCap:conditions,"Online")])]